User Defined Fields

SoftwareShield System Feature Guide > Secure License Details > User Defined Fields

## User Defined Fields

Before reading the rest of this page, be sure you have read Secure License Details in this reference.

User Defined Fields refers to an area of the license which can be accessed by your software through the ClientProtector to securely store various types of data. In general, these fields are not used by logic of the ClientProtector (one exception, see below). They are generally for your use and reference - to be used and manipulated by your software in any way you see fit.

The data contained inside the User Defined Fields is physically contained by the license. Since the entire contents of the license is encrypted, compressed and mirrored into the Alias Files - it is quite secure from tampering.

The number and type of User Defined Fields in your license are:

1. 10 Strings. Accessible by the functions GetUDString, SetUDString

2. 5 Numbers (32-bit signed integers) Accessible by the functions GetUDNumber, SetUDNumber

3. 5 Dates (Gregorian year, month day) Accessible by the functions GetUDDate, SetUDDate

User Defined Strings are never used for logical processing by the ClientProtector. User Defined String fields are dynamically allocated and have no declared maximum length. The theoretical maximum length of these string values is 2GB (two gigabytes). In practice this means that the maximum length of these strings is limited only by the amount of memory available to your application.

User Defined Dates and User Defined Numbers may be used by logical processing of the ClientProtector in the case you have defined a Design-Time Composite Authorization Definition which takes a parameter value from a User Defined Field of the appropriate type.

In the case you have defined a Design-Time Composite payload which requires a parameter for a leaf Authorization Definition, you have the option of using the contents of a specific User Defined Field for that parameter value (date and number types only as appropriate). This essentially allows you to change the behaviour of a Design-Time Authorization Definition at run-time by changing the value contained in the appropriate User Defined Field just before it is activated - which is otherwise not possible. See Design-Time Composite Authorization Definition and Design Time Payloads for more information.

### More Information

For help on setting General License Details initially in your license, see General Tab in the SoftwareShield License Manager Reference.

For help on programmatically setting and getting these fields see the above list of function references.